When and how does one become a good programmer these days? [closed]

Posted by YoungMoney on Programmers See other posts from Programmers or by YoungMoney
Published on 2011-06-30T00:02:24Z Indexed on 2011/06/30 0:29 UTC
Read the original article Hit count: 149

Filed under:

I mean, good enough to make software people want and get paid for it. Maybe even good enough to launch a company or something. I'm also concerned that I'm not applying the finer points of my algorithms/data structures/software design knowledge.

Background: I'm 20 and have been struggling with programming for about two years now, trying to become a software engineer. I started with a few university courses that I did quite poorly in.

I learned how to make websites with HTML/JavaScript and PHP/MySQL, but feel like I know very relevant theory for making good databases - how does something like Facebook serve hundreds of millions of people? What would be smart ways to store data? I don't know. Now I'm doing some android application development, but again I have no idea about good Java design theory (I use static variables like they're going out of fashion) and feel more like I'm gluing stuff together and letting Eclipse slowly autocomplete my project.

In short, I'm not sure if I'm becoming a legitimate software developer or just "doing what's cool". At least I've taken some data structures and Algorithms courses and plan to take more in the next years. But I'm having a really tough time applying this stuff to my fun little apps that I'm building.

Every language higher level than C++ seems to have its own quicksort function already built-in, for example. Similarly, I can't remember ever needing to implement a linked-list, heap, binary tree, or or worry about pointers and memory management. But maybe this is a good thing so that I focus on other things? I'm not too sure what those other things are though. Hopefully something more than building another photo sharing app.

Anyways that's it for me, I look forward to your responses!

© Programmers or respective owner

Related posts about software-engineering